package com.zzz.first;

import java.util.ArrayList;
import java.util.HashSet;

/*
 * @author zzr
 * @date: 2025/07/07  10:22
 * @description:
 */
public class Demo2_2 {
    /**
     * 代码中的类名、方法名、参数名已经指定，请勿修改，直接返回方法规定的值即可
     *
     *
     * @param nums1 int整型ArrayList
     * @param nums2 int整型ArrayList
     * @return int整型ArrayList
     */
    public ArrayList<Integer> intersection (ArrayList<Integer> nums1, ArrayList<Integer> nums2) {
        // 使用 HashSet 存储第一个数组的元素自动去重
        // 查找公共元素：遍历第二个数组，检查元素是否存在于 HashSet 中
        // 如果存在，将其加入结果列表，并从 HashSet 中移除
        ArrayList<Integer> result = new ArrayList<>();
        HashSet<Integer> set = new HashSet<>(nums1); // 存储 nums1 的元素 ==》 去重
        for (Integer num : nums2) {
            if (set.contains(num)) {
                result.add(num);
                set.remove(num); // 将已经匹配的元素移除
            }
        }
        return result;
    }
}
